perm filename EROM.FAI[CMS,LCS]2 blob
sn#187352 filedate 1975-11-21 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00006 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 PROM PROG
C00004 00003 RESET I/O INDEXED ?
C00006 00004 KB SCAN
C00008 00005 CONTINUE NOTSTN←370 (NOTSTN←-STKNUM) INDEXED ?
C00009 00006 LED OUT
C00019 ENDMK
C⊗;
; PROM PROG
; ODT RAM DPYK,ADH,ADL,DAT
; IRQA,IRQB,IRQC,NMIA,NMIB,NMIC
; A,X,Y,SP,CRA,PRA,CRB,PRB ??
; ROM INTER VECTS
LOC 177774
NMIVL: NMIAL ; 1
NMIAH ; 1
RSTVL: RSTAL ; 1
RSTAH ; 1
IRQVL: IRQAL ; 1
IRQAH ; _1_
; 6
LOC 177400
BRK ; 1
; ROM RESTET FIX IRQV AND CRA FOR KB INTER ?
NMIJ: JMPAB
ODTAL
ODTAH
RRST: LDXIM 3 ; 2
FIXV: LDABX NMIJ ; 3
STABX NMIALH-1; 3
DEX ; 1
BNE FIXV ; __2_
; 11
; OCT DDT STKNUM←10
ODT: STAAB SVA ;SAVE A REG 3
STXAB SVX ;SAVE X REG 3
LDXIM STKNUM ;GET SAVE COUNT 2
SAVS: PLA ;GET FROM STACK 1
STABX SVSTK-1 ;AND SAVE IT 3
DEX ; 1
BNE SAVS ;DO MORE 2
TYA ;SAVE Y 1
PHA ; __1_
; 17
; ____
; 35
; RESET I/O INDEXED ?
; PIAH←367 ZERO←0 NEG1←377
; CRA←375 PRA←374
; CRB←377 PRB←476
KBINI:
LDXIM 374 ;SETUP COUNT 2
LDYIM ZERO ; 2
MORIO: LDABX PIAH 0 ;SAVE PRA 3
PHA ; 1
LDABX PIAH 1 ;SAVE CRA 3
PHA ; 1
TYA ; 1
STABX PIAH 0 ;SET DDBIT 3
STABX PIAH 0 ;SETUP DIREC. 3
INX ;ADD TWO TO INDEX 1
INX ; 1
BNE MORIO ;DO OTHER ONE 2
LDAIM 6 ;SET DDBIT 2
STAAB CRA ;SET ↑BIT __3_
KBINI: LDAAB CRA ;SAVE CRA 3
PHA ; 1
LDXIM ZERO ; 2
STXAB CRA ;SET DDRA 3
LDAAB PRA ;SAVE PRA 3
PHA ; 1
STXAB PRA ;SET INDD 3
LDAIM 6 ;SET DDBIT 2
STAAB CRA ;SET ↑BIT __3_
; 21
LEDINI: LDAAB CRB ;SAVE CRB 3
PHA ; 1
LDAAB PRB ;SAVE PRB 3
PHA ; 1
STXAB CRB ;SET DDRB WITH ZERO 3
LDAIM NEG1 ; 2
STAAB PRB ; 3
LDAIM 54 ;SET DDBIT 2
STAAB CRB ;SET PULSE __3_
; 21
; ____
; 42
; KB SCAN
KSCAN: JSR IKBW ;GET KBCHR 3
CMPIM 7 ; 2
BCS GADR ;BRANCH ON NON NUM _2_
; 7
CMPIM 10 ; 2
BNE KCNUM ; 2
UDKEY: LDAAB UDKL ; 3
LDYAB IDKH ; 3
BNE STJMP ; __2_
; 12
KCNUM: JSR IKBW ; 3
ASHAC ; 1
TAX ; 1
LDABX CTBL ; 3
LDYBX CTBL+1 ; 3
STJMP: STAAB JWDS ; 3
STYAB JWDS+1 ; 3
JMPIN JWDS ; __3_
20
CTBL: CONT ; 2
CR ; 2
LF ; 2
/ ; 2
. ; 2
; 2
; 2
; 2
; 2
; __2_
; 10
; GET ADDRESS ??
GADR: LDXIM 3 ; 2
DIG: ASLAB ADL ;SHIFT ADDRESS LEFT 3
ROLAB ADH ; 3
DEX ; 1
BNE DIG ; 2
ORAAB ADL ;AND ADD KBCHR 3
STAAB ADL ; 3
JMPAB KSCAN ; __3_
; 20
; INKBW A←INCHR
IKBW: BITAB CRA ;TEST CRA FOR INPUT 3
BPL IKBW ; 2
LDAAB PRR ;GET CHR 3
ANDIM 360 ;GET RID OF JUNK 2
RTS ;RETURN _1_
; 11
; ____
; 89
; CONTINUE NOTSTN←370 (NOTSTN←-STKNUM) INDEXED ?
CONT:
PLA ; 1
STAAB PRB ; 3
PLA ; 1
STAAB CRB ; 3
PLA ; 1
STAAB PRA ; 3
PLA ; 1
STAAB CRA ; __3_
; 16
PLA ; 1
TAY ; 1
LDXIM NOTSTN ; 2
GETS: LDABX SVSTK+STKNUM-NEG1 ; 3
PHA ; 1
INX ; 1
BMI GETS ; 2
LDXAB SVX ; 3
LDAAB SVA ; 3
RTI ; __1_
; 18
; ____
; 34
; LED OUT
LDPY: PHP ;PUSH CARRY 1
LDAIM 140 ;SETUP COUNT 2
SVCNT: ANDIM 360 ; 2
STAAB DPYK ;SAVE COUNT 3
LDXIM 4 ;SETUP BIT COUNT 2
LDAAB VAL ;AND GET VAL 3
PLP ;GET CARRY __1_
; 14
FBITS: ROLAC ;ROTATE 4 BITS LEFT 1
ROLAB ADL ; 3
ROLAB ADH ; 3
DEX ;DEC X 1
BNE FBITS ;AND DO REST __2_
; 10
STAAB VAL ;SAVE IT 3
ANDIM 17 ;GET FIRST HALF BYTE 2
ORAAB DPYK ;GET COUNT 3
STAAB PRB ;DPY IT 3
PHP ;SAVE CARRY 1
SEC ; 1
SBCIM 20 ;DEC COUNT 2
BCC SVCNT ;MORE? 2
PLP ;POP PS 1
RTS ;RETURN __1_
; 19
; ____
; 43
; 35
; 42
; 89
; __34_
; 243
END